package com.pe.pgn.clubpgn.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.pe.pgn.clubpgn.dao.SincronizacionFlotaDao;
import com.pe.pgn.clubpgn.domain.ClpbClienteEmpresa;
import com.pe.pgn.clubpgn.domain.ClpbTarjetaEmpresa;
import com.pe.pgn.clubpgn.domain.ClpdFlota;
import com.pe.pgn.clubpgn.domain.ClpmDocumentoPagoEmpresa;
import com.pe.pgn.clubpgn.domain.ClpmSincronizacionFlota;
import com.pe.pgn.clubpgn.domain.beans.BNClienteEmpresa;
import com.pe.pgn.clubpgn.service.SincronizacionFlotaService;

@Service("sincronizacionFlotaService")
public class SincronizacionFlotaServiceImpl extends GenericManagerImpl<ClpmSincronizacionFlota,Long> 
	implements SincronizacionFlotaService{

	@Autowired
	private SincronizacionFlotaDao sincronizacionFlotaDao;

	public void guardarSyncPorClienteEmpresa(ClpbClienteEmpresa clienteEmpresa) {
		this.sincronizacionFlotaDao.guardarSyncPorClienteEmpresa(clienteEmpresa);
	}

	public void guardarSyncPorClienteEstacion(BNClienteEmpresa clienteempresa) {
		this.sincronizacionFlotaDao.guardarSyncPorClienteEstacion(clienteempresa);
	}

	public void guardarSyncPorFlota(ClpdFlota flota) {
		this.sincronizacionFlotaDao.guardarSyncPorFlota(flota);
	}

	public int guardarSyncPorFlotaVehiculo(Long idFlotaVehiculo, Long idFlota,
			String dePlaca, String coTarjetaEmpresa, Long idClienteEmpresa) {
		return this.sincronizacionFlotaDao.guardarSyncPorFlotaVehiculo(idFlotaVehiculo, idFlota,
		dePlaca, coTarjetaEmpresa, idClienteEmpresa);
	}

	public int inactivarSyncPorFlotaVehiculo(Long idFlotaVehiculo) {
		return this.sincronizacionFlotaDao.inactivarSyncPorFlotaVehiculo(idFlotaVehiculo);
	}

	public void inactivarSyncPorFlotaVehiculo(Long idFlotaID, String placa,
			Long tarjetaEmpresaID, Long clienteEmpresaID) {
		this.sincronizacionFlotaDao.inactivarSyncPorFlotaVehiculo(idFlotaID, 
		placa, tarjetaEmpresaID, clienteEmpresaID);
	}

	public void guardarSyncPorTarjetaEmpresa(ClpbTarjetaEmpresa tarjetaEmpresa, ClpbTarjetaEmpresa tarjetaEmpresaInicial) {
		this.sincronizacionFlotaDao.guardarSyncPorTarjetaEmpresa(tarjetaEmpresa, tarjetaEmpresaInicial);		
	}

	public void guardarSyncPorDocumentoPago(
			ClpmDocumentoPagoEmpresa documentoPago) {
		this.sincronizacionFlotaDao.guardarSyncPorDocumentoPago(documentoPago);
	}

	public void guardarSyncPorClientesEstacion(Long idEstacion,boolean stEstacion, boolean isNew) {
		this.sincronizacionFlotaDao.guardarSyncPorClientesEstacion(idEstacion, stEstacion, isNew);
	}

	@SuppressWarnings("unchecked")
	public void guardarSyncPorFlotasVehiculos(List dataSheet, Long clienteEmpresaID) {
		this.sincronizacionFlotaDao.guardarSyncPorFlotasVehiculos(dataSheet, clienteEmpresaID);
	}	
}
